﻿using System.Reflection;

namespace PrivateAccessor.Tests
{
    public class TestClass2 : TestClass
    {
        protected override void ProtectedVirtualAction0()
        {
            ActionResult = this.GetType().Name +"_"+ MethodBase.GetCurrentMethod().Name;
        }
        public override void PublicVirtualAction0()
        {
            ActionResult = this.GetType().Name + "_" + MethodBase.GetCurrentMethod().Name;
        }

        protected override string ProtectedVirtualProperty
        {
            get
            {
                return this.GetType().Name + "_" + base.ProtectedVirtualProperty;
            }
            set
            {
                base.ProtectedVirtualProperty = value;
            }
        }
        internal override string InternalVirtualProperty
        {
            get
            {
                return this.GetType().Name + "_" + base.InternalVirtualProperty;
            }
            set
            {
                base.InternalVirtualProperty = value;
            }
        }
        public override string PublicVirtualProperty
        {
            get
            {
                return this.GetType().Name + "_" + base.PublicVirtualProperty;
            }
            set
            {
                base.PublicVirtualProperty = value;
            }
        }
    }
}
